/* 
 *  Base on Easy Slider 1.5 - jQuery plugin
 * 
 *	written by Alen Grakalic	
 *	http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding
 *
 *	Copyright (c) 2009 Alen Grakalic (http://cssglobe.com)
 *	Dual licensed under the MIT (MIT-LICENSE.txt)
 *	and GPL (GPL-LICENSE.txt) licenses.
 *
 *  Modified by Siyalrach Anton Thomas
 */
(function($) {
	// Tilføjer vores custom jQuery plugin til jQuery, således vi kan kalde på den vha. "$('#element').verticalSlider" 
	$.fn.verticalSlider = function(options){
	  
		// Konfigurations muligheder for vores custom jquery plugin
		var defaults = {			
			speed: 			800,
            numbers:         1
		}; 
		
		var options = $.extend(defaults, options);  
				
		this.each(function() {  
			var obj = $(this); 				
			var s = $("li", obj).length;
			var w = $("li", obj).width(); 
			var h = $("li", obj).height(); 
			obj.width(w); 
			obj.height(h * options.numbers); 
			obj.css("overflow","hidden");
			var t = 0;
			$("ul", obj).css('width',s*w);			
            
			// Vores next handler, som kalder på animate med værdien "next"
			var nextHandler = function() {
				animate("next");
			};
			// previous handler
			var prevHandler = function() {
				animate("prev");
			};
			
			// Binder kun next i starten, da man ikke skal have mulighed for at trykke på previous, da vi altid initalisere listen fra 0
			$(".next").bind('click', nextHandler);
			
			// Kalder altid på animate når vi modtager et event fra vores butttons
			function animate(dir){		
				switch(dir){
					case "next":
						t = t+1;						
						break; 
					case "prev":
						t = t-1;
						break; 
					default:
						break; 
				};	
				
                // For at kontrollere next og previous button, bliver vi nød til at tjekke, 
                // hvor mange li elementer vi har i vores items ul element
                var liDisplay = 0;
                $(".item").each(function(index){
                		if($(this).css("display") != "none"){
                			liDisplay ++;
                		}
                });
                
                p = (t*h*-1); // Bruges når vi skal lave vores animation
                $("ul",obj).animate(
                    { marginTop: p }, 
                    options.speed
                );
                
                if(t >= liDisplay-options.numbers || t > liDisplay){
                	$(".next").unbind('click', nextHandler);
                } else {
                	// Unbinder med samme handler, for at være sikker på at vi ikke kalder handler 2 gange
                	$(".next").unbind('click', nextHandler).bind('click', nextHandler);
                };
                
                if(t==0){
                	$(".previous").unbind('click', prevHandler);
                } else {
                	$(".previous").unbind('click', prevHandler).bind('click',  prevHandler);
                };							
			};
		});
	};

})(jQuery);